<?php
/**
 * --------------------------------
 * # 启动框架
 * --------------------------------
 * 1. 定义基本常量
 * 2. 加载框架函数库
 * 3. 自动加载框架类库
 * --------------------------------
 */

## 定义框架核心路径
define('PHPLESS',APP.DIRECTORY_SEPARATOR.'phpless');

## 定义公共资源路径
define('PUBLIC_PATH',APP.DIRECTORY_SEPARATOR.'Public');
## 定义上传文件存放路径
define('UPLOADS_PATH',APP.DIRECTORY_SEPARATOR.'Uploads');

## 定义应用模型层路径
define('APP_MODEL_PATH',APP_PATH.DIRECTORY_SEPARATOR.'Model');
## 定义应用视图层路径
define('APP_VIEW_PATH',APP_PATH.DIRECTORY_SEPARATOR.'View');
## 定义应用控制器路径
define('APP_CONTROLLER_PATH',APP_PATH.DIRECTORY_SEPARATOR.'Controller');
## 定义应用公共类库路径
define('APP_COMMON_PATH',APP_PATH.DIRECTORY_SEPARATOR.'Common');

## 定义应用配置路径
define('APP_CONFIG_PATH',APP_COMMON_PATH.DIRECTORY_SEPARATOR.'Config');
## 定义应用函数库路径
define('APP_FUNCTION_PATH',APP_COMMON_PATH.DIRECTORY_SEPARATOR.'Function');
## 定义应用第三方类库路径
define('APP_ORG_PATH',APP_COMMON_PATH.DIRECTORY_SEPARATOR.'ORG');
## 定义应用模组路径
define('APP_TRAIT_PATH',APP_COMMON_PATH.DIRECTORY_SEPARATOR.'Traits');
## 定义应用第三方类库包路径
define('APP_VENDOR_PATH',APP_COMMON_PATH.DIRECTORY_SEPARATOR.'Vendor');

## 定义框架配置路径
define('PHPLESS_CONFIG',PHPLESS.DIRECTORY_SEPARATOR.'Config');
## 定义框架核心类文件路径
define('PHPLESS_CORE',PHPLESS.DIRECTORY_SEPARATOR.'core');
## 定义框架函数库路径
define('PHPLESS_FUNCTION',PHPLESS.DIRECTORY_SEPARATOR.'Function');
## 定义框架类文件路径
define('PHPLESS_ORG',PHPLESS.DIRECTORY_SEPARATOR.'ORG');
## 定义框架模版文件路径
define('PHPLESS_TEMPLATE',PHPLESS.DIRECTORY_SEPARATOR.'Template');
## 定义框架模组路径
define('PHPLESS_TRAIT',PHPLESS.DIRECTORY_SEPARATOR.'Traits');
## 定义类库包路径
define('PHPLESS_VENDOR',PHPLESS.DIRECTORY_SEPARATOR.'Vendor');

## 定义项目网址
define('__HOST__',isset($_SERVER['REQUEST_SCHEME'])?$_SERVER['REQUEST_SCHEME'].'://'.dirname($_SERVER['HTTP_HOST']??''.$_SERVER['SCRIPT_NAME']??''):'http'.'://'.dirname($_SERVER['HTTP_HOST']??''.$_SERVER['SCRIPT_NAME']??''));
## 定义公共资源网址
define('__PUBLIC__',__HOST__.DIRECTORY_SEPARATOR.'Public');
## 定义上传文件网址
define('__UPLOADS__',__HOST__.DIRECTORY_SEPARATOR.'Uploads');

// 加载框架函数库
include PHPLESS_FUNCTION.DIRECTORY_SEPARATOR.'functions.php';

// 自动加载框架类库
include PHPLESS_CORE.DIRECTORY_SEPARATOR.'Autoloader.class.php';
// 使用 SPL 自动加载所需的类文件
spl_autoload_register('\phpless\core\Autoloader::load');
\phpless\core\Phpless::run();
